package edu.neu.cs6515.net;

/**
 * the input and output for proxies
 */
public interface IProxyInOutput {

    /**
     * send a message to input and output
     * 
     * @param obj
     *            message to be sent
     * @exception InputOutputException
     *                indicate that the sending fails
     */
    void respond(final Object obj) throws InputOutputException;

    /**
     * block until receiving an object message,
     * 
     * @return message
     * @exception InputOutputException
     *                indicate the receiving fails
     */
    Object receive() throws InputOutputException;

}